package com.battle.service.service.in;

import com.battle.pojo.param.personWarCase.GetPersonWarCaseListParam;
import com.battle.pojo.param.skillCertificate.CreateSkillCertificateParam;
import com.battle.pojo.param.skillCertificate.EditSkillCertificateParam;
import com.battle.pojo.param.skillCertificate.GetSkillCertificateDownListParam;
import com.battle.pojo.param.skillCertificate.GetSkillCertificateListParam;
import com.battle.pojo.vo.skillCertificate.GetSkillCertificateDownListVo;
import com.battle.pojo.vo.skillCertificate.GetSkillCertificateListVo;
import com.battle.pojo.vo.skillCertificate.GetSkillCertificateVo;
import jakarta.servlet.http.HttpServletResponse;
import nirvana.core.domains.vo.PageResult;

import java.io.IOException;
import java.util.List;


/**
 * 【描 述】：技能证书服务
 * 【环 境】：J2SE
 * 【详 细】：
 */
public interface SkillCertificateService {

    /**
     * 创建技能证书
     *
     * @param param
     */
    void createSkillCertificate(CreateSkillCertificateParam param);

    /**
     * 修改技能证书
     *
     * @param param
     */
    void editSkillCertificate(EditSkillCertificateParam param);

    /**
     * 移除技能证书
     *
     * @param id
     */
    void removeSkillCertificate(Long id);

    /**
     * 批量更新-数据加密
     */
    void bathUpdate();

    /**
     * 启动/禁用技能证书
     *
     * @param id
     */
    void enabledSkillCertificate(Long id);

    /**
     * 获取技能证书详情
     *
     * @param id
     * @return
     */
    GetSkillCertificateVo getSkillCertificate(Long id);

    /**
     * 获取技能证书列表
     *
     * @param param
     * @return
     */
    PageResult<GetSkillCertificateListVo> getSkillCertificateList(GetSkillCertificateListParam param);

    /**
     * 导出技能证书
     * @param param
     * @param response
     * @throws IOException
     */
    void export(GetSkillCertificateListParam param, HttpServletResponse response) throws IOException;

    /**
     * 获取技能证书下拉列表
     *
     * @param param
     * @return
     */
    List<GetSkillCertificateDownListVo> getSkillCertificateDownList(GetSkillCertificateDownListParam param);


}